#ifndef ELIBC_FUNCTION_H
#define ELIBC_FUNCTION_H

typedef int (*FunctionEqualTo)(const void * l, const void * r);
typedef int (*FunctionLessThan)(const void * l, const void * r);

typedef void (*FunctionOnInserted)(const void * data);
typedef void (*FunctionOnErased)(void * data);

// void * {

int functionVoidEqualTo(const void * l, const void * r);
int functionVoidLessThan(const void * l, const void * r);

// }

// int {

int functionIntEqualTo(const void * l, const void * r);
int functionIntLessThan(const void * l, const void * r);

void functionIntOnErased(void * data);

// }

// unsigned int {

int functionUIntEqualTo(const void * l, const void * r);
int functionUIntLessThan(const void * l, const void * r);

void functionUIntOnErased(void * data);

// }

#endif // ELIBC_FUNCTION_H
